Multi-tap functionality for interactive dynamic push notifications and other content

ABSTRACT

A computer-implemented method for controlling an animated icon displayed on a display screen of a user device includes: providing, by at least one processor, an animated icon on the display screen of the user device to illustrate a notification content, determining, by the at least one processor, a number of times that the user has selected the animated icon on the display screen, and in response: performing, by the at least one processor, an action based on the number of times that the user has selected the animated icon.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims priority to U.S. Provisional patent applicationSer. No. 62/265,892, filed on Dec. 10, 2015. The entire disclosure ofthe earlier application is incorporated herein by reference.

TECHNICAL FIELD

This disclosure relates to presenting interactive and dynamicallychanging information to users of electronic devices, such as smartphonesand the like.

BACKGROUND

Electronic devices (e.g., cellular phones, tablet computers,smartphones, personal data assistants, smart watches, and virtualreality devices) can facilitate interactions between two or moredifferent entities. For example, in some cases, a user can operate anelectronic device in order to transmit information to others through acommunications network. As another example, in some cases, a user canoperate an electronic device in order to receive and review informationfrom others through a communications network.

SUMMARY

Implementations for displaying interactive dynamic notifications on auser device are described herein.

In one aspect, for example, a computer-implemented method forcontrolling an animated icon displayed on a display screen of a userdevice is descried. The method includes: providing, by at least oneprocessor, an animated icon on the display screen of the user device toillustrate a notification content; determining, by the at least oneprocessor, a number of times that the user has selected the animatedicon on the display screen, and in response: performing, by the at leastone processor, an action based on the number of times that the user hasselected the animated icon.

The foregoing and other aspects can each optionally include one or moreof the following features, alone or in combination. Determining a numberof times that the user has selected the animated icon can includedetermining that the user has selected the animated icon once, and inresponse: performing the action including opening a landing page thatincludes information related to the notification content. Determining anumber of times that the user has selected the animated icon includesdetermining that the user has selected the animated icon twice, and inresponse: performing the action including pausing an animation of theanimated icon. Determining a number of times that the user has selectedthe animated icon can include determining that the user has selected theanimated icon three times, and in response: performing the actionincluding displaying a notification setting to allow the user tocustomize notification content that the user wishes to receive throughan animated icon.

Other aspects, features and advantages will be apparent from thefollowing detailed description, the drawings and the claims.

BRIEF DESCRIPTION OF DRAWINGS

FIG. 1 depicts an example user interface.

FIGS. 2A-F depict an example icon that is dynamically animated in orderto display and receive information.

FIGS. 3A, 3B and 3C illustrate examples multi-tap functionality for adynamic push animated icon.

FIG. 4A depicts an example administrator interface.

FIG. 4B depicts an example analytics interface.

FIG. 5 is a diagram of an example system architecture for implementinginteractive dynamic push notifications and campaigns.

FIG. 6 is a component view of the architecture.

FIG. 7 illustrates an example of a sequential flow for the pushnotification architecture.

DETAILED DESCRIPTION

Implementations for displaying interactive dynamic notifications on auser device are described herein. One or more implementations can beused for advertising goods or services, or relaying information relevantto an application, company, and/or user. The user can also interact withthese notifications to request additional information, executeapplications, transmit information to others, and/or perform any otherfunction.

In an example implementation, a user device (e.g., a smartphone or atablet computer) includes a display screen that is used to presentinformation visually to a user. For example, the display screen presentsa graphical user interface, upon which one or more applications are eachvisually represented using a graphical intelligent icon. In thefollowing description, references to “icon” should be understood asapplying to icons, apps, instant apps and/or widgets. References to“icon” can also refer to icons associated with Progressive WebApplications (PWAs). Specifically, a PWA is an app that can allow a userto visit an URL and immediately start using the app without actuallyinstalling the app in the user's device. A PWA can eliminate unnecessarysteps for using an app such as downloading, installing, and opening theapp.

The icons can be intelligent, and can be dynamically animated in orderto display information to the user and/or receive information from theuser. As one example, an icon representing a retail store can beanimated to display promotions offered by the retail store. As anotherexample, an icon representing a bank can be animated to displayinformation regarding a user's relationship with the bank (e.g., balanceor transaction information). As yet another example, an iconrepresenting an auction site can be animated to display informationregarding outcomes of a user's bids to purchase an item. As yet anotherexample, an icon representing a dating service can be animated todisplay information regarding dating prospects. This animation can be“pushed” to the user device (e.g., from a server system) in order toprovide the user with notifications in real-time or substantiallyreal-time. Animations can be cached in case the phone is turned off, andwhen the phone is turned on, all cached animations can run sequentiallyas a commercial advertisement. In some instances, this animation can bedisplayed within a portion of an icon or across the entirety of an iconthat is currently residing in a grid of icons on the display screen ofthe user device.

Icons can be dynamically animated in various ways, including modifyingthe icon's color, shape, and/or displayed image with or without audio.For example, an animated icon can blink, change color, and/or changeshape. As another example, an animated icon can depict the appearance,modification, and/or disappearance of text and objects displayed withinthe icon. As another example, an animated icon can display an animation,movie, audio and/or video within a portion of the icon or across theentirety of the icon. As another example, an animated icon can display acommercial or cartoon within a portion of the icon or across theentirety of the icon. In some cases, the animated icon can be hiddenfrom view, then selectively revealed or displayed to the user. This canbe useful, for example, to notify users of particular types ofinformation (e.g., receipt of a message) while conserving space in theuser interface when no information is being displayed.

In some instances, icons and their animations can be customized so thatthey display the desired information. For example, an icon can becustomized by a user of the device, other users, advertisers, retailers,banks, or any other entity.

The user can also interact with the icon. For example, the user canselect the icon in order to request additional information, executeapplications, transmit information to others, load videos, open videos,and/or perform other operations. A user can interact with the icon inone or more different ways. For example, in some cases, a device caninclude a touch sensitive display screen that detects when the usertouches or otherwise physically interacts with the display screen; toselect an icon, the user can use his finger or hand to click, touch, orhold the display screen above the location where the icon appears. Asanother example, in some cases, a device can include an input device(e.g., a mouse, a trackpad, a keyboard, a joystick, a stylus, a dial, aneye-tracking device, or a gesture-tracking device) that allows a user tomove or activate a selection element of the graphical user interface(e.g., a cursor or selection box) on the graphical display; to select anicon, the user can use the input device to move the selection elementover the icon and confirm his selection. In some cases, when the userinteracts with the icon, information regarding the user's interaction istransmitted to a third party (e.g., an administrator for theapplication, an advertiser, a retailer, or any other party). As anexample, in some cases, information regarding the user installing theapplication (and accompanying icon), the time and nature of the user'sinteraction with the icon, and the user's location when he interactedwith the icon can be transmitted to a third party for analysis. Thisinformation can be combined with other information (e.g., other usagedata related to one or more users) in order to obtain more detailedinformation regarding each user's behavior.

An example user interface 100 is shown in FIG. 1. User interface 100includes several icons 110, each of which represents a particularapplication that is available on an electronic device. A user can selectany one of the icons (e.g., by touching a graphical representation of anicon on a touch-sensitive or pressure-sensitive display device orclicking on a graphical representation of an icon using an input devicesuch as a mouse or a voice-command device) in order to execute theassociated application. For example, a user can touch a graphicalrepresentation of an icon corresponding to a “Macy's” application inorder to execute a “Macy's” application. In some cases, the userinterface 100 can be referred to as a “launcher,” a “home screen,” a“spring board,” or a “start screen.”

One or more of the icons 110 can be dynamically animated in order todisplay information to the user. In some cases, a dynamically animatedicon can be presented as a series of static images (e.g., “frames”) thatvisually differ from each other in some way. When viewed as a sequence,the images provide an appearance of motion or dynamic change. In somecases, the differences between sequential images can be relativelyslight, such that the sequence of images provides an appearance of fluidmotion. As an example, FIGS. 2A-F show, in sequence, the appearance ofthe icon 110 over a period of time. As shown in FIG. 2A, the icon 110initially shows a star shape (e.g., representing a logo of anapplication or organization). As shown in FIGS. 2B-C, a tree shape isdepicted entering the icon and covering the star shape. As shown in FIG.2D-E, the tree shape is depicted leaving the icon, revealing apromotional message. As shown in FIG. 2F, the promotional message ismaintained.

Although one example animation sequence is shown in FIGS. 2A-F, this ismerely an illustrative example. In general, icons can be dynamicallyanimated in various ways, including modifications to its color, shape,and displayed image. Further, animations can be played a single time(e.g., by playing a single animation sequence from the beginning to theend) and/or repeated (e.g., by playing the animation sequence multipletimes, either with or without a period of rest in between).

In some cases, a dynamically animated icon can display a movie or video(e.g., a movie or video with or without accompanying sound) within aportion of the icon or across the entirety of the icon. For example, insome cases, an animated icon can display a live-action film (e.g., afilm produced using one or more live actors, physical objects, and/orreal-world locations). Thus, a live-action film can be presented withinthe icon in order to display information to the user. In some cases, thelive-action film can be presented in a native video format (e.g., avideo file), or it can be represented in an animated image format (e.g.,an animated GIF) with or without audio.

In some cases, a dynamically animated icon can simultaneously depictseveral display elements (e.g., several different shapes, lines,objects, and/or patterns), where at least some of the display elementsappear to be moving differently from others. For example, in some cases,a dynamically animated icon can depict a first display element thatappears to be traveling in one direction, while simultaneously depictinga second display element that appears to be traveling in a differentdirection. As another example, in addition to the first and seconddisplay elements, the dynamically icon can simultaneously depict a thirddisplay element that appears to be changing shape. As another example,in addition to the first, second, and third display elements, thedynamically animated icon can simultaneously depict a fourth displayelement that appears to be changing size. In this manner, severaldifferent display elements can be displayed simultaneously on ananimated icon, each of which can be moving differently from and/orindependently of one another.

In some cases, a dynamically animated icon does not merely depict one ormore static display elements (e.g., static images or text) and cyclebetween those static display elements using transition effects (e.g., a“sliding” effect, a “screen wipe” effect, or “flipping” effect).Instead, in some cases, a dynamically animated icon can depict one ormore display elements that appear to be interacting with each other in adynamic manner. As an example, in some cases, a dynamically animatedicon can depict one or more articulating objects (e.g., cartoonrepresentations of persons, animals, figures, or objects) and/or one ormore objects that appear to be physically interacting with each other.Thus, in some cases, a dynamically animated icon does not merely displaystatic images or text according to a transition effect, and insteadprovides the user with a more vibrant visual experience.

In some cases, an icon can be dynamically animated such that the icon ishidden from view (e.g., not displayed on a user interface), thenselectively revealed or displayed to the user (e.g., graphicallydisplayed on the user interface such that it becomes visible to a user).In some cases, when the icon is hidden, a portion of the user interfacecan be reserved for the icon, such that it is positioned at a particularlocation once it is revealed. For example, referring to FIG. 1, the userinterface 100 can reserve a region 120 (denoted by a dotted box) for ahidden icon, such that other icons do not occupy the region 120. Whenthe icon is revealed, it is displayed in the region 120.

Icons and their animations can be customized so that they display thedesired information. For instance, in an example implementation, theicon 110 is typically static (e.g., not animated), such that it appearsas a traditional still image on the graphical interface 100. However,when a particular event occurs with respect to an application (e.g., theavailability of a promotional offer, the availability of a message froman organization associated with an application, a change in status ofthe application, or any other information), the icon 110 is animated toindicate that the particular event has occurred. This can have theeffect of attracting the user's attention, and notifying the user thatthe event has occurred. The user can then select the icon to learn moreinformation regarding the event.

In some cases, an icon 110 can be dynamically animated to showpromotional offers. For example, in some cases, an icon 110 canrepresent a shopping application (e.g., an application related to aparticular retailer). When a promotion is made available to the user forthat application (e.g., a promotion offered by the retailer), the icon110 representing the application can be animated to indicate theavailability of that promotion. Once the promotion is no longeravailable, the animation can cease or the icon 110 can disappear.

In some cases, an icon 110 can be dynamically animated to show thereceipt of messages from a messaging service (e.g., an e-mail, aninstant message, a social media message). For example, in some cases, anicon 110 can represent a messaging application (e.g., a clientapplication that provides a user with access to a messaging system orsocial media platform). When a message is transmitted to the user ofthat application, the icon 110 representing the application can beanimated to indicate receipt of that message. In some cases, the messagecan be animated to show content from the message. For example, the iconcan be animated to show text, images, movies, videos from the message.In some cases, for example when the icon includes a movie, video, oraudio clip having an audio portion, the audio portion can be played asthe icon is animated. Once the message has been read or discarded, theanimation can cease or the icon 110 can disappear.

In some cases, an icon 110 can be dynamically animated to show thestatus of a financial transaction or the status of a financial account.For example, in some cases, an icon 110 can represent a banking orbrokerage application (e.g., an application that provides a user withaccess to a financial account at a financial institution). When aparticular financial transaction has been conducted (e.g., a transfer ofmoney or assets to or from the user's financial account), the icon 110representing the application can be animated to indicate that thefinancial transaction has been conducted. For instance, the icon 110 canbe animated to indicate when a purchase of a stock has been successfullycompleted, or to verify the purchase of any other security of asset.Further, the icon can be animated to show the status of the user'sfinancial account (e.g., the user's account balance). The user can stopthe animation (e.g., by interacting with the icon) once he has receivedthe information. In some cases, sensitive information (e.g., accountbalances or payment confirmations) can be hidden unless the userauthenticates his identity (e.g., by providing a password, a biometricinput such as a fingerprint, voice command or any other credential).

Although example implementations are described above, these are merelyillustrative examples. In practice, animations can be used to indicateother types of information, statuses, or events directly on a userinterface (e.g., on an application launcher interface, such as a“launcher,” a “home screen,” a “spring board,” or a “start screen).

In some cases, an application can respond in one, two, three, or moredifferent ways, depending on whether the application's icon was animatedwhen the user selected it. For example, in some cases, when the userselects the icon while the icon is static (e.g., not animated), thedevice executes the application associated with the icon and presentsthe user with a default application interface (e.g., a “general” userinterface). However, when the user selects the icon while it is animateda first way, the device executes the application and presents the userwith a secondary application interface (e.g., a “promotional” interfacethat provides more information regarding a particular promotion).Further, when the user selects the icon while it is animated a secondway, the device executes the application and presents the user with atertiary application interface (e.g., a “notification” interface thatprovides more information regarding a particular notification or alert).In this manner, the application can be executed differently, dependingon whether the icon is animated at the time of selection.

In some cases, the user can interact with the icon in one two or moredifferent ways in order to perform different functions. For example, insome cases, the user can select an icon once (e.g., by tapping a touchsensitive display) to perform a first action (e.g., execute anapplication according to a default behavior), select the icon twice(e.g., by double tapping) to perform a second action (e.g., execute anapplication in an alternative interface), and select the icon threetimes (e.g., by triple tapping) to perform a second action (e.g.,execute an application in another alternative interface). In some cases,the user also can perform gestures with respect to the icon (e.g., usinghis finger, stylus, or hand to draw a line, a circle, a check mark, oran “X” mark on the device's display screen above the location where theicon appears or initiate a response using a voice command) in order tocause the application to perform different actions. In some cases, theuser can vary the length of time in which he performs a gesture (e.g.,pressing the device's display screen for a length of time vs. tappingthe device's display screen for a shorter period of time) in order toperform different functions. In some cases, a user can define customgestures, and associate those gestures with particular functions.

FIGS. 3A, 3B and 3C illustrate examples of the multi-tap functionality.In particular, FIG. 3A illustrates an example of single tapfunctionality; FIG. 3B illustrates an example of two-tap functionality;and FIG. 3C illustrates an example of three-tap functionality. Forexample, by single tapping the dynamic push animated icon appearing onthe display screen of the mobile device, the application links the userdevice directly to the promotion page (URL) for the campaign. Doubletapping the dynamic push animated icon appearing on the display screenof the mobile device pauses the animation. Double tapping again (i.e.,on the paused dynamic push icon) clears the animating widget back to thecompany's static application icon. Triple tapping the dynamic pushanimated icon appearing on the display screen of the mobile deviceserves as a shortcut to the user's notification settings, which allowthe user to customize and change the types of dynamic content the userwishes to receive. The settings also can provide the user with theability to turn off the currently active dynamic push icon. Theforegoing multi-tap (or multi-click) operations also can be used forother types of content such as programmable videos.

Icons and their animations can be customized so that they display thedesired information. For example, an icon can be customized by a user ofthe device, other users, advertisers, retailers, banks, or any otherentity. In some cases, icon animations can be customized by the entitythat is associated with an application. For example, if an iconrepresents an application provided by retailer, the retailer (or itsagent) can customize the animation in order to display the desiredinformation. As another example, if an icon represents an applicationprovided by a bank, the bank (or its agent) can customize the animationin order to display the desired information.

In some cases, icon animation can be selectively controlled for each ofmultiple sub-sets of users. For example, in some cases, even thoughseveral users each may have a particular application installed,different sub-sets of users each may see different icon animations. Insome cases, users can be divided into different sub-sets based ondemographic information. This can be particularly useful, for example,in providing targeted advertising, such that a particular promotion ispresented to particular types of users who may find the promotionuseful, while not presenting the promotion to other users who might notfind the promotion useful. In some cases, a user's demographicinformation can be determined based on a user's input. For example, insome implementations, a user can input his gender, age, location,ethnicity, interests, income, family information, and/or any otherdemographic information into an application associated with the animatedicon. The collection or use of such information may, in some situations,be subject to privacy laws or regulations.

In some cases, icon animations can be customized by a user of a device.For example, the user can input his own animations or select particularanimations from among a collection of pre-defined animations, such thaticons are animated according to the user's preferences. This can beuseful, for example, as it allows the user to select animations that aremore aesthetically pleasing and/or more useful to that user.

As another example, the user can associate particular animations withparticular criteria. For example, the user can specify that an iconshould animate a certain way in order to display one type of information(e.g., a promotional offer from one merchant), and that the icon shouldanimate a different way in order to display another type of information(e.g., a message from another user).

As another example, the user can specify the conditions under which anicon will animate. For example, the user can select particular merchantsfrom which he wishes to receive promotional offers. Upon receipt of apromotional offer from one of the selected merchants, an icon cananimate to present the promotion to the user. In some cases, a user canbe presented with a list or grid of several different merchants, and auser can select one or more of these merchants to indicate particularmerchants from which he wishes to receive promotional offers, ordeselect one or more of these merchants to indicate particular merchantsfrom which he no longer wishes to receive promotional offers.

As another example, the user can control animations (e.g., byselectively starting or stopping animations). This can be useful, forexample, as it allows the user to cease icon animations that he is nolonger interested in viewing, and initiate and/or maintain animationsthat he is interested in viewing. As an example, in some cases, an iconmight be animated to alert the user to a promotion, and the user cancease the animation after he is no longer interested in the promotion.In some cases, the user can control animations by inputting commands,for example by selecting the icon (e.g., by tapping the device's displayscreen above the location where the icon appears) or performing agesture with respect to the icon (e.g., by drawing a line on thedevice's display screen above the location where the icon appears).

In some cases, a user can specify which icons he wishes to be animated.For example, the user can specify that a first sub-set of icons shouldbe animated in order to display particular types of information, while asecond sub-set of icons should remain static. This can be useful, forexample, as it allows the user to specify that icons pertaining toparticular applications of interest should be animated, while specifyingthat icons pertaining to other applications (e.g., applications in whichhe has less interested) are not animated. In some implementations, theuser can specify each of these icons manually. In some implementations,icons can be specified at least in part, based on automated processesthat identify icons that may be of interest to the user.

In some cases, icon animations can be generated or customized by a thirdparty that is not directly related to the user or entity that associatedwith the application. For example, in some cases, icons can be animatedby a third party advertiser that maintains promotional offers oradvertising campaigns on behalf of a retailer, but otherwise is notdirectly related to the retailer. In some cases, the advertiser cancustomize the icon animations on behalf of one or more entities (e.g.,one or more retailer) as a service to those entities.

Icons provided by third-parties can replace the existing icon of anapplication, or can be presented in conjunction with the existing iconof the application. For example, in some cases, an animated iconprovided by an advertiser can replace the existing icon of a retailer'sapplication, such that the user accesses the application through theicon provided by the advertiser. This can be useful, for example, as itallows the advertiser and retailer to maintain a single unified presencewith respect to the user. As another example, in some cases, an animatedicon provided by an advertiser can be displayed in addition to theexisting icon of the retailer's application, such that the user canaccess the application through either icon. This can be useful, forexample, as it allows the retailer and the advertiser to maintaindistinct presences with respect to the user. In practice, eitherarrangement can be used, depending on the relationship between the partymaintaining the application and the third-party providing the animatedicon.

In some cases, animations can be time sensitive, such that they occurduring particular periods of time, and do not occur during other periodsof time. This can be beneficial, for example, in presenting timesensitive information or information that may be of diminishedusefulness outside of a particular range of time. For example,animations can be time sensitive in order to provide informationregarding limited promotions or time-sensitive messages. In some cases,icon animations can be scheduled ahead of time (e.g., by anadministrator) such that they are initiated at a particular point intime in the future. This allows administrators to coordinate the releaseof information (e.g., to coordinate the release of information as a partof a larger advertising campaign, or to coordinate the release ofinformation upon the planned release of a product or service).

In some instances, the animation of an icon can be controlled through auser interface (e.g., an administrator interface). An exampleadministrator interface 300 is shown in FIG. 4A. A user (e.g., anadministrator) can selectively enable or disable animations on one ormore user devices (e.g., devices operated by one or more customers,clients, or other users) by selecting an appropriate option on theadministration interface 300. For example, an administrator can toggle afirst animation by selecting an interface element 310, and toggle asecond animation by selecting an interface element 320. In response, thefirst animation and second animation are selectively enabled or disabledon one or more customers' devices. In some cases, an administratorassociated with an advertiser can control icon animations on severalcustomers' devices in order to display promotional informationselectively to those customers. An administrator also can edit thecontent shown by the icon animations selectively. For example, theadministrator can edit the content of the first animation by select aninterface element 330, and can edit the content of the second animationby select an interface element 340. In response, the administratorinterface 300 can present the administrator with an appropriateinterface (e.g., an animation editing interface) such that theadministrator can make changes to the animation.

In some cases, when the user (e.g., a customer) interacts with an icon,information regarding the user's interaction is transmitted to a thirdparty (e.g., an administrator for the application, an advertiser, aretailer, or any other party). This information can be viewed using auser interface (e.g., an analytics interface). An example analyticsinterface 400 is shown in FIG. 4B. A user (e.g., an administrator) canuse the analytics interface 400 to view how another user (e.g., acustomer) interacts with the icon. For example, the administrator canview when the customer has single tapped the icon (e.g., as shown byevent 402), and when the customer has double tapped an icon (e.g., asshown by event 404). In some cases, the analytics interface 400 can showinformation regarding a single user or several users (e.g., a singlecustomer or several customers). In some cases, information shown inanalytics interface 400 can be filtered in order to show informationselectively according to one or more criteria (e.g., informationpertaining to a particular user or group of users).

FIG. 5 illustrates an example of the logical representation of thearchitecture for a system operable to implement the push campaigns. FIG.6 is a component view of the architecture. FIG. 7 illustrates an exampleof the sequential flow for the architecture. In the illustrated example,DynamicPush® SDK with Admin Dashboard is an animated push notificationservice product named “DynamicPush®.” Architecture is designed anddeveloped to support both Android and iOS platforms in the form of SDKs.For Android platforms, DynamicPush® can be an application without aLauncher icon and can display notifications on top of all user contentand apps. For iOS platforms, DynamicPush® can use iOS expanded detailview with 3D Touch (iOS versions 10 and up) that displays rich content,such as an animation or a video; or an applet, such as a map or acalendar. with or without audio. The admin web application can managethe DynamicPush® Animated Push Notifications, for example as a campaignsvia Google Cloud Messaging Systems and Amazon Simple NotificationService (SNS) as Pub-sub Service for Mobile and Enterprise Messaging andfacilitation of analytics tracked by DynamicPush® with differentattributes of Mobile App Users (User Attributes, User Activities, Userlocations, Retarget Audiences and Marketing Activities), text, apppages, web page url and in-app messages with animations. TheDynamicPush® can be provided using the Java, Android Java using AndroidStudio, Objective-C, and Swift using X-Code iOS Platform on UnixPlatform and hosted on Amazon Cloud. The Presentation (UI) tier, WebAdmin Dashboard can be provided using Ruby on Rails, AngularJS, jQuery,Bootstrap framework following the HTML 5 and CSS3 standards. Thebusiness tier will be instantiated using Ruby gems Library. The dataaccess and connected to MySQL data base, No SQL, Big Data and AWS S3 WebRESTful Services.

In some implementations, dynamically animated icons can be incorporatedinto an existing application using one or more software development kitsSDKs in order to provide interactive dynamic push notificationfunctionality. An SDK can be, for example, a set of software developmenttools that facilitates the creation of applications or the creation ofsub-routines that can be incorporated into an existing application. Insome cases, an SDK can include one or more application programminginterfaces (APIs) (e.g., sets of routines, protocols, and tools thatexpress a software component in terms of its operations, inputs,outputs, and underlying types). In some cases, an SDK can be provided toa software developer by a third party (e.g., a party who is not directlyinvolved in the development of the existing application). For instance,an advertiser can provide a merchant with an SDK that enables themerchant to add interactive dynamic push notification functionality tothe merchant's application.

In some cases, in addition to providing an SDK to a software developer,the third party can also provide the software developer with systemsthat manage the interactive dynamic push notification features of theapplication. For example, the third party can provide a server systemthat allows the software developer to generate icon animations andtransmit those animations to one or more user devices running thesoftware developer's application. The server system can also receiveinformation regarding users' interactions with the application,aggregate and analyze the information, and present the information tothe software developer for review. This can be beneficial, for example,as it allows the software developer to incorporate interactive dynamicpush notification features into his own application without requiringthat he also provide his own systems to support and manage thosefeatures.

Although a third party, in some cases, can provide systems that supportand manage the interactive dynamic push notification features of anapplication, this need not be the case. For example, in some cases, athird party can provide a software developer with an SDK that enablesthe software developer to incorporate interactive dynamic pushnotification features into his application, but does not provide thesoftware developer with a server system to support or manage thosefeatures. The software developer can, in these cases, provide his ownserver system or otherwise acquire a server system independently fromthe third party to provide this functionality. This allows the softwaredeveloper to maintain greater control of his application and theinformation collected from its users. This can particularly beneficial,for example, if the software developer wishes to limit others fromaccessing potentially sensitive or private data.

In some cases, icon animations can be accompanied by auditory effects.For example, in some cases when a user's device animates an icon, theuser's device can also generate a particular sound (e.g., a soundeffect, music, speech, and/or other audio). In some cases, this can beused to notify the user that an animation is being played, even if theuser is not currently viewing the device. In some cases, the sound candepend on the type of information that is being presented. For example,certain types of sound can be played for certain types of animations,such that the user can differentiate between them.

Although example implementations are described with respect to userdevices such as smartphones and tablets, these are merely illustrativeexamples. In practice, implementations of animated icons can be usedwith any other type of electronic device, including desktop computercomputers, notebook computers, media players, “smart” TVs, digital videorecorders (DVRs), virtual reality systems, in-car systems for mobileapps that control a vehicle's dashboard display, intelligent devicesthat include voice recognition, watches and other wearable intelligentdevices (e.g., smart glasses).

Further, although example implementations are described with respect to“icons,” an “icon” can, in some cases, encompass any graphical elementthat represents an application on a user interface, presents informationpertaining to the application, or is otherwise associated with theapplication. For example, in some cases, an icon can include graphicalelements such as widgets, images, thumbnails, textual labels, and/orcombinations thereof. As described above, any of these graphicalelements can be animated as described above in order to presentinteractive and dynamically changing information to users of electronicdevices. Likewise, the user can interact with these any of thesegraphical elements in order to perform a variety of tasks on theirelectronic devices.

Some implementations of subject matter and operations described in thisspecification can be implemented in digital electronic circuitry, or incomputer software, firmware, or hardware, including the structuresdisclosed in this specification and their structural equivalents, or incombinations of one or more of them. Some implementations described inthis specification can be implemented as one or more groups or modulesof digital electronic circuitry, computer software, firmware, orhardware, or in combinations of one or more of them. Although differentmodules can be used, each module need not be distinct, and multiplemodules can be implemented on the same digital electronic circuitry,computer software, firmware, or hardware, or combination thereof.

Some implementations described in this specification can be implementedas one or more computer programs, i.e., one or more modules of computerprogram instructions, encoded on computer storage medium for executionby, or to control the operation of, data processing apparatus. Acomputer storage medium can be, or can be included in, acomputer-readable storage device, a computer-readable storage substrate,a random or serial access memory array or device, or a combination ofone or more of them.

Moreover, while a computer storage medium is not a propagated signal, acomputer storage medium can be a source or destination of computerprogram instructions encoded in an artificially generated propagatedsignal. The computer storage medium can also be, or be included in, oneor more separate physical components or media (e.g., multiple CDs,disks, or other storage devices).

The term “data processing apparatus” encompasses all kinds of apparatus,devices, and machines for processing data, including by way of example aprogrammable processor, a computer, a system on a chip, or multipleones, or combinations, of the foregoing. The apparatus can includespecial purpose logic circuitry, e.g., an FPGA (field programmable gatearray) or an ASIC (application specific integrated circuit). Theapparatus can also include, in addition to hardware, code that createsan execution environment for the computer program in question, e.g.,code that constitutes processor firmware, a protocol stack, a databasemanagement system, an operating system, a cross-platform runtimeenvironment, a virtual machine, or a combination of one or more of them.The apparatus and execution environment can realize various differentcomputing model infrastructures, such as web services, distributedcomputing and grid computing infrastructures.

A computer program (also known as a program, software, softwareapplication, script, or code) can be written in any form of programminglanguage, including compiled or interpreted languages, declarative orprocedural languages. A computer program may, but need not, correspondto a file in a file system. A program can be stored in a portion of afile that holds other programs or data (e.g., one or more scripts storedin a markup language document), in a single file dedicated to theprogram in question, or in multiple coordinated files (e.g., files thatstore one or more modules, sub programs, or portions of code). Acomputer program can be deployed to be executed on one computer or onmultiple computers that are located at one site or distributed acrossmultiple sites and interconnected by a communication network.

Some of the processes and logic flows described in this specificationcan be performed by one or more programmable processors executing one ormore computer programs to perform actions by operating on input data andgenerating output. The processes and logic flows can also be performedby, and apparatus can also be implemented as, special purpose logiccircuitry, e.g., an FPGA (field programmable gate array) or an ASIC(application specific integrated circuit).

Processors suitable for the execution of a computer program include, byway of example, both general and special purpose microprocessors, andprocessors of any kind of digital computer. Generally, a processor willreceive instructions and data from a read only memory or a random accessmemory or both. A computer includes a processor for performing actionsin accordance with instructions and one or more memory devices forstoring instructions and data. A computer may also include, or beoperatively coupled to receive data from or transfer data to, or both,one or more mass storage devices for storing data, e.g., magnetic,magneto optical disks, or optical disks. However, a computer need nothave such devices. Devices suitable for storing computer programinstructions and data include all forms of non-volatile memory, mediaand memory devices, including by way of example semiconductor memorydevices (e.g., EPROM, EEPROM, flash memory devices, and others),magnetic disks (e.g., internal hard disks, removable disks, and others),magneto optical disks , and CD ROM and DVD-ROM disks. The processor andthe memory can be supplemented by, or incorporated in, special purposelogic circuitry.

To provide for interaction with a user, operations can be implemented ona computer having a display device (e.g., a monitor, or another type ofdisplay device) for displaying information to the user and a keyboardand a pointing device (e.g., a mouse, a trackball, a tablet, a touchsensitive screen, or another type of pointing device) by which the usercan provide input to the computer. Other kinds of devices can be used toprovide for interaction with a user as well; for example, feedbackprovided to the user can be any form of sensory feedback, e.g., visualfeedback, auditory feedback, or tactile feedback; and input from theuser can be received in any form, including acoustic, speech, or tactileinput. In addition, a computer can interact with a user by sendingdocuments to and receiving documents from a device that is used by theuser; for example, by sending web pages to a web browser on a user'sclient device in response to requests received from the web browser.

A computer system may include a single computing device, or multiplecomputers that operate in proximity or generally remote from each otherand typically interact through a communication network. Examples ofcommunication networks include a local area network (“LAN”) and a widearea network (“WAN”), an inter-network (e.g., the Internet), a networkcomprising a satellite link, and peer-to-peer networks (e.g., ad hocpeer-to-peer networks). A relationship of client and server may arise byvirtue of computer programs running on the respective computers andhaving a client-server relationship to each other.

The foregoing techniques and features can be used in a wide range ofapplications. Examples include, but are not limited, to the following:

-   -   Clothing/Shoes Retailers and Wholesalers who want to engage        customers with new items, special sales, targeted discounts, and        other alerts.    -   Software Products and Service Providers who want to engage        customers with alerts about upcoming software updates and bug        fixes.    -   Technology Retailers and Wholesalers who want to engage        customers with new items, special sales, targeted discounts, and        other alerts such as recalls or product updates.    -   Video Game and Computer Game Providers who want to engage        customers with new items, special sales, targeted discounts, and        other alerts such as software updates and bug fixes.    -   Sports Organizations and Venues that Host Live Events who want        to engage customers with new events, performances, appearances,        special sales, targeted discounts, and other alerts.    -   Food Service Providers who want to engage customers with new        items, special sales, targeted discounts, and other alerts.    -   Banks and Financial Institutions who want to engage customers        with account updates, fraud alert, low balance, and other        alerts.    -   Federal, State, and Local Governments and Government Related        Organizations who want to engage civilians with traffic or        service updates/announcements, possible threat or emergency        alerts, reminders about days for refuse collection and parking        rules, and other alerts.    -   Weather and Geological Services who want to engage customers        with inclement or hazardous weather alerts, safe zone        directions, and other alerts.    -   Individual Users who want to engage friends, family members, or        personal network with personal alerts such as upcoming birthdays        or events, personal for “sale” items, personal marketing        ventures, and other alerts.    -   Gambling sites    -   Dating sites    -   Music retailers and ticket sales    -   Television shopping and Retail    -   Auction sites    -   Messaging activities    -   Social networking activities    -   Sports and Fantasy sports

Various modifications may be made without departing from the spirit andscope of the disclosure. Accordingly, other implementations are withinthe scope of the claims.

What is claimed is:
 1. A computer-implemented method for controllingdynamic icon displayed on a display screen of a user device, the methodcomprising: displaying, by the display screen, the dynamic icon on ahome screen interface of the user device, the home screen interfacebeing operable to display a plurality of additional icons, eachadditional icon of the plurality of additional icons indicating adifferent respective application on the user device; receiving, by theuser device, one or more user selections by a user of the user device,wherein each user selection indicates a respective type of data item tobe presented on the user device; receiving, by the user device from aserver system remote from the user device, one or more data items;identifying one or more data items that are associated with the one ormore types of data items to be presented on the user device; receiving,by the user device, one or more animations from the server system, theone or more animations corresponding to the one or more identified dataitems; presenting the one or more identified data items on the homescreen interface by animating, on the home screen interface, one or moredisplay elements depicted in the dynamic icon according to the one ormore received animations, wherein the one or more identified data itemson the home screen interface are presented responsive to a commandtransmitted by a second device to the server system, the commandcomprising an instruction to present the one or more identified dataitems on the home screen interface of the user device; determining, bythe user device, a number of times that the user has selected thedynamic icon on the display screen, and in response: performing, by theuser device, an action based on the number of times that the user hasselected the dynamic icon.
 2. The method of claim 1, wherein determininga number of times that the user has selected the dynamic icon includesdetermining that the user has selected the dynamic icon once, and inresponse: performing the action including opening a landing page thatincludes information related to the one or more identified data items.3. The method of claim 2, wherein determining a number of times that theuser has selected the dynamic icon includes determining that the userhas selected the dynamic icon twice, and in response: performing theaction including pausing an animation of the dynamic icon.
 4. The methodof claim 3, wherein determining a number of times that the user hasselected the dynamic icon includes determining that the user hasselected the dynamic icon three times, and in response: performing theaction including displaying a notification setting to allow the user tocustomize the types of data item to be presented on the user device bythe dynamic icon.
 5. The method of claim 1, wherein determining a numberof times that the user has selected the dynamic icon includes:determining that the user has selected the dynamic icon once while thedynamic icon is not animated, and in response performing the actionincluding opening a first user interface of an application, anddetermining that the user has selected the dynamic icon once while thedynamic icon is animated, and in response performing the actionincluding opening a second user interface of the application differentfrom the first user interface, the second user interface includinginformation the one or more identified data items.
 6. A system forcontrolling a dynamic icon displayed on a display screen of a userdevice, the method comprising: one or more processors; and one or morenon-transitory computer-readable media including one or more sets ofinstructions which, when executed by the one or more processors, causes:displaying, by the display screen, the dynamic icon on a home screeninterface of the user device, the home screen interface being operableto display a plurality of additional icons, each additional icon of theplurality of additional icons indicating a different respectiveapplication on the user device; receiving, by the user device, one ormore user selections by a user of the user device, wherein each userselection indicates a respective type of data item to be presented onthe user device; receiving, by the user device from a server systemremote from the user device, one or more data items; identifying one ormore data items that are associated with the one or more types of dataitems to be presented on the user device; receiving, by the user device,one or more animations from the server system, the one or moreanimations corresponding to the one or more identified data items;presenting the one or more identified data items on the home screeninterface by animating, on the home screen interface, one or moredisplay elements depicted in the dynamic icon according to the one ormore received animations, wherein the one or more identified data itemson the home screen interface are presented responsive to a commandtransmitted by a second device to the server system, the commandcomprising an instruction to present the one or more identified dataitems on the home screen interface of the user device; determining, bythe user device, a number of times that the user has selected thedynamic icon on the display screen, and in response: performing, by theuser device, an action based on the number of times that the user hasselected the dynamic icon.
 7. The system of claim 6, wherein determininga number of times that the user has selected the dynamic icon includesdetermining that the user has selected the dynamic icon once, and inresponse: performing the action including opening a landing page thatincludes information related to the one or more identified data items.8. The system of claim 7, wherein determining a number of times that theuser has selected the dynamic icon includes determining that the userhas selected the dynamic icon twice, and in response: performing theaction including pausing an animation of the dynamic icon.
 9. The systemof claim 8, wherein determining a number of times that the user hasselected the dynamic icon includes determining that the user hasselected the dynamic icon three times, and in response: performing theaction including displaying a notification setting to allow the user tocustomize the types of data item to be presented on the user device bythe dynamic icon.
 10. The system of claim 6, wherein determining anumber of times that the user has selected the dynamic icon includes:determining that the user has selected the dynamic icon once while thedynamic icon is not animated, and in response performing the actionincluding opening a first user interface of an application, anddetermining that the user has selected the dynamic icon once while thedynamic icon is animated, and in response performing the actionincluding opening a second user interface of the application differentfrom the first user interface, the second user interface includinginformation the one or more identified data items.
 11. A non-transitorycomputer-readable medium including one or more sets of instructionswhich, when executed by one or more processors, causes: displaying, by adisplay screen of a user device, a dynamic icon on a home screeninterface of the user device, the home screen interface being operableto display a plurality of additional icons, each additional icon of theplurality of additional icons indicating a different respectiveapplication on the user device; receiving, by the user device, one ormore user selections by a user of the user device, wherein each userselection indicates a respective type of data item to be presented onthe user device; receiving, by the user device from a server systemremote from the user device, one or more data items; identifying one ormore data items that are associated with the one or more types of dataitems to be presented on the user device; receiving, by the user device,one or more animations from the server system, the one or moreanimations corresponding to the one or more identified data items;presenting the one or more identified data items on the home screeninterface by animating, on the home screen interface, one or moredisplay elements depicted in the dynamic icon according to the one ormore received animations, wherein the one or more identified data itemson the home screen interface are presented responsive to a commandtransmitted by a second device to the server system, the commandcomprising an instruction to present the one or more identified dataitems on the home screen interface of the user device; determining, bythe user device, a number of times that the user has selected thedynamic icon on the display screen, and in response: performing, by theuser device, an action based on the number of times that the user hasselected the dynamic icon.
 12. The non-transitory computer-readablemedium of claim 11, wherein determining a number of times that the userhas selected the dynamic icon includes determining that the user hasselected the dynamic icon once, and in response: performing the actionincluding opening a landing page that includes information related tothe one or more identified data items.
 13. The non-transitorycomputer-readable medium of claim 12, wherein determining a number oftimes that the user has selected the dynamic icon includes determiningthat the user has selected the dynamic icon twice, and in response:performing the action including pausing an animation of the dynamicicon.
 14. The non-transitory computer-readable medium of claim 13,wherein determining a number of times that the user has selected thedynamic icon includes determining that the user has selected the dynamicicon three times, and in response: performing the action includingdisplaying a notification setting to allow the user to customize thetypes of data item to be presented on the user device by the dynamicicon.
 15. The non-transitory computer-readable medium of claim 11,wherein determining a number of times that the user has selected thedynamic icon includes: determining that the user has selected thedynamic icon once while the dynamic icon is not animated, and inresponse performing the action including opening a first user interfaceof an application, and determining that the user has selected thedynamic icon once while the dynamic icon is animated, and in responseperforming the action including opening a second user interface of theapplication different from the first user interface, the second userinterface including information the one or more identified data items.